package socofwebget;

import java.io.Serializable;
import java.util.Date;

/**
 *
 * @author tiagopereira
 */

public class Ficheiro implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer id;
    private String dominio;
    private String ficheiro;
    private String estado;
    private long tamanhosite;
    private String caminhosite;
    private String caminholocal;
    private String tipo;
    private Integer niveis;
    private Date actualizado;

    public Ficheiro() {
        this.id = null;
        this.dominio=null;
        this.ficheiro=null;
        this.estado=null;
        this.tamanhosite=0;
        this.caminhosite=null;
        this.caminholocal=null;
        this.tipo=null;
        this.niveis=null;
        this.actualizado=null;
    }

    public Ficheiro(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getDominio() {
        return dominio;
    }

    public void setDominio(String dominio) {
        this.dominio = dominio.toLowerCase();
    }

    public String getFicheiro() {
        return ficheiro;
    }

    public void setFicheiro(String ficheiro) {
        this.ficheiro = ficheiro;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado.toUpperCase();
    }

    public long getTamanhosite() {
        return tamanhosite;
    }

    public void setTamanhosite(long tamanhosite) {
        this.tamanhosite = tamanhosite;
    }

    public String getCaminhosite() {
        return caminhosite;
    }

    public void setCaminhosite(String caminhosite) {
        this.caminhosite = caminhosite;
    }

    public String getCaminholocal() {
        return caminholocal;
    }

    public void setCaminholocal(String caminholocal) {
        this.caminholocal = caminholocal;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo.toUpperCase();
    }

    public Integer getNiveis() {
        return niveis;
    }

    public void setNiveis(Integer niveis) {
        this.niveis = niveis;
    }

    public Date getActualizado() {
        return actualizado;
    }

    public void setActualizado(Date actualizado) {
        this.actualizado = actualizado;
    }
    
    public Ficheiro(Integer id,String dominio, String ficheiro,String estado,
            long tamanhosite,String caminhosite,String caminholocal,
            String tipo,Integer niveis,Date actualizado) {
        this.id = id;
        this.dominio=dominio.toLowerCase();
        this.ficheiro=ficheiro;
        this.estado=estado.toUpperCase();
        this.tamanhosite=tamanhosite;
        this.caminhosite=caminhosite;
        this.caminholocal=caminholocal;
        this.tipo=tipo.toUpperCase();
        this.niveis=niveis;
        this.actualizado=actualizado;
    }
    
    /**
     * Cria Ficheiro sem ID para ser gerido pela BD
     * @param dominio
     * @param ficheiro
     * @param estado
     * @param tamanhosite
     * @param caminhosite
     * @param caminholocal
     * @param tipo
     * @param niveis
     * @param actualizado 
     */
        public Ficheiro(String dominio, String ficheiro,String estado,
            long tamanhosite,String caminhosite,String caminholocal,
            String tipo,Integer niveis,Date actualizado) {
        this.dominio=dominio.toLowerCase();
        this.ficheiro=ficheiro;
        this.estado=estado.toUpperCase();
        this.tamanhosite=tamanhosite;
        this.caminhosite=caminhosite;
        this.caminholocal=caminholocal;
        this.tipo=tipo.toUpperCase();
        this.niveis=niveis;
        this.actualizado=actualizado;
    }
    
    public void setFicheirosAtributes(Integer id,String dominio, String ficheiro,String estado,
            long tamanhosite,String caminhosite,String caminholocal,
            String tipo,Integer niveis,Date actualizado) {
        this.id = id;
        this.dominio=dominio.toLowerCase();
        this.ficheiro=ficheiro;
        this.estado=estado.toUpperCase();
        this.tamanhosite=tamanhosite;
        this.caminhosite=caminhosite;
        this.caminholocal=caminholocal;
        this.tipo=tipo.toUpperCase();
        this.niveis=niveis;
        this.actualizado=actualizado;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Ficheiro)) {
            return false;
        }
        Ficheiro other = (Ficheiro) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        //return "socofwebget.Ficheiro[ id=" + id + " ]";
        return id +","+ dominio +","+ ficheiro +","+ estado
                +","+ tamanhosite +","+ caminhosite 
                +","+ caminholocal +","+ tipo +","+ 
                niveis +","+ actualizado;
    }
    
}
